# Build recipe for perl-moo
#
# Copyright (c) 2018 Markus Tornow, <tornow@riseup.net>.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

program=Moo
version=2.003004
release=1

# Set 'outdir' for a nice and well-organized output directory
outdir="${outdir}/${arch}/modules/perl"

tarname=${program}-${version}.tar.gz

# Remote source(s)
fetch=http://cpan.metacpan.org/authors/id/H/HA/HAARG/Moo-2.003004.tar.gz

description="
Moo - Minimalist Object Orientation (with Moose compatibility).

Moo is an extremely light-weight Object Orientation system. It allows
one to concisely define objects and roles with a convenient syntax that
avoids the details of Perl's object system. Moo contains a subset of
Moose and is optimised for rapid startup.

Moo avoids depending on any XS modules to allow for simple deployments.
The name Moo is based on the idea that it provides almost -- but not
quite -- two thirds of Moose.

Unlike Mouse this module does not aim at full compatibility with Moose's
surface syntax, preferring instead to provide full interoperability via
the metaclass inflation capabilities described in MOO AND MOOSE.

For a full list of the minor differences between Moose and Moo's surface
syntax, see INCOMPATIBILITIES WITH MOOSE.
"

homepage=http://metacpan.org/pod/Moo
license="Artistic License"

# Source documentation
docs="Changes MANIFEST README"
docsdir="${docdir}/${program}-${version}"

build()
{
    set -e

    unpack "${tardir}/$tarname"

    cd "$srcdir"

    perl Makefile.PL PREFIX=/usr
    make -j${jobs} V=1
    make -j${jobs} DESTDIR="$destdir" install

    # Compress info documents deleting index file for the package
    if test -d "${destdir}/$infodir"
    then
        rm -f "${destdir}/${infodir}/dir"
        lzip -9 "${destdir}/${infodir}"/*
    fi

    # Compress and link man pages (if needed)
    if test -d "${destdir}/$mandir"
    then
        (
            cd "${destdir}/$mandir"
            find . -type f -exec lzip -9 '{}' +
            find . -type l | while read -r file
            do
                ln -sf "$(readlink -- "$file").lz" "${file}.lz"
                rm -- "$file"
            done
        )
    fi

    # Copy documentation
    mkdir -p "${destdir}${docsdir}"
    cp -p $docs "${destdir}${docsdir}/"
}


